From 64123904fb9ff55f126d26ef06512357bf14b36b Mon Sep 17 00:00:00 2001 From: "djm@kirby.fc.hp.com" Date: Tue, 8 Nov 2005 12:15:55 -0600 Subject: [PATCH] Fix domU (by Kevin Tian) --- .../arch/ia64/xen/drivers/evtchn_ia64.c | 15 +++------------ .../drivers/xen/blkback/interface.c | 6 ++++++ 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/linux-2.6-xen-sparse/arch/ia64/xen/drivers/evtchn_ia64.c b/linux-2.6-xen-sparse/arch/ia64/xen/drivers/evtchn_ia64.c index 236881e3fe..e8a4e4972c 100644 --- a/linux-2.6-xen-sparse/arch/ia64/xen/drivers/evtchn_ia64.c +++ b/linux-2.6-xen-sparse/arch/ia64/xen/drivers/evtchn_ia64.c @@ -36,14 +36,6 @@ int bind_virq_to_irq(int virq, int cpu) while(1); } -#if 0 -void notify_remote_via_irq(int virq) -{ - printk("notify_remote_via_irq called... FIXME??\n"); - while(1); -} -#endif - void unbind_virq_from_evtchn(int virq) { evtchn_op_t op; @@ -91,10 +83,9 @@ void unbind_evtchn_from_irq(unsigned int evtchn) void notify_remote_via_irq(int irq) { - int evtchn = virq_to_evtchn[irq]; // FIXME... is this right?? - - if (VALID_EVTCHN(evtchn)) - notify_remote_via_evtchn(evtchn); + /* IA64 has same irq value as event channel vector */ + if (VALID_EVTCHN(irq)) + notify_remote_via_evtchn(irq); } irqreturn_t evtchn_interrupt(int irq, void *dev_id, struct pt_regs *regs) diff --git a/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c b/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c index be6f935191..77273e1f3a 100644 --- a/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c +++ b/linux-2.6-xen-sparse/drivers/xen/blkback/interface.c @@ -51,6 +51,12 @@ static int map_frontend_page(blkif_t *blkif, unsigned long shared_page) blkif->shmem_ref = shared_page; blkif->shmem_handle = op.handle; +#ifdef __ia64__ + /* on some arch's, map_grant_ref behaves like mmap, in that the + * passed address is a hint and a different address may be returned */ + blkif->blk_ring_area->addr = gnttab_map_vaddr(op); +#endif + return 0; } -- 2.30.2